package com.yunxi.model.otd;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.print.DocFlavor.STRING;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 生产计划
 * </p>
 *
 * @author XUQI
 * @since 2019-05-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("pms_otd_if_produce_plan")
@ApiModel(value = "OtdIfProducePlan对象", description = "生产计划接口表")
public class OtdIfProducePlan implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "生产计划ID")
    @TableId(value = "IF_PLAN_ID", type = IdType.UUID)
    private String ifPlanId;

    @ApiModelProperty(value = "生产计划号")
    @TableField("PLAN_NO")
    private String planNo;

    @ApiModelProperty(value = "周生产需求CODE")
    @TableField("WEEK_PLAN_CODE")
    private String weekPlanCode;

    @ApiModelProperty(value = "计划年")
    @TableField("ORDER_YEAR")
    private String orderYear;

    @ApiModelProperty(value = "计划月")
    @TableField("ORDER_MONTH")
    private String orderMonth;

    @ApiModelProperty(value = "计划周")
    @TableField("ORDER_WEEK")
    private String orderWeek;

    @ApiModelProperty(value = "产品编码")
    @TableField("PRODUCT_CODE")
    private String productCode;

    @ApiModelProperty(value = "选装包")
    @TableField("CUSTOM_PACK_CODE")
    private String customPackCode;

    @ApiModelProperty(value = "预计生产日期")
    @TableField("EXPECTED_DEMAND_DATE")
    private Date expectedDemandDate;

    @ApiModelProperty(value = "订单车编号")
    @TableField("CUS_ORDER_NO")
    private String cusOrderNo;

    @ApiModelProperty(value = "项目用车编号")
    @TableField("PROJECT_CAR_NO")
    private String projectCarNo;

    @ApiModelProperty(value = "接口类型 I：新增  U：更新  D：删除")
    @TableField("INTERFACE_TYPE")
    private String interfaceType;

    @ApiModelProperty(value = "经销商编号")
    @TableField("DEALER_NO")
    private String dealerNo;

    @ApiModelProperty(value = "车系")
    @TableField("VEHICLE_CODE")
    private String vehicleCode;

    @ApiModelProperty(value = "订单类型 国内、海外、项目车")
    @TableField("ORDER_TYPE")
    private String orderType;

    @ApiModelProperty(value = "变量车型（15位物料码）")
    @TableField("CAR_MODEL")
    private String carModel;

    @ApiModelProperty(value = "整车描述")
    @TableField("CAR_NAME")
    private String carName;

    @ApiModelProperty(value = "电池包编码")
    @TableField("ZZPACK")
    private String zzpack;

    @ApiModelProperty(value = "客户需求日期")
    @TableField("REQUEST_DATE")
    private Date requestDate;

    @ApiModelProperty(value = "整车下线限制类型")
    @TableField("CAR_LIMIT_STATE")
    private String carLimitState;

    @ApiModelProperty(value = "整车下线库存限制原因")
    @TableField("CAR_LIMIT_REASON")
    private String carLimitReason;

    @ApiModelProperty(value = "车架号")
    @TableField("VIN")
    private String vin;

    @ApiModelProperty(value = "锁定标识 X.锁定(下线不能卖)")
    @TableField("LOCK_FLAG")
    private String lockFlag;

    @ApiModelProperty(value = "生产优先级")
    @TableField("PRIORITY")
    private String priority;

    @ApiModelProperty(value = "工厂")
    @TableField("WORKS")
    private String works;

    @ApiModelProperty(value = "创建人")
    @TableField(value = "CREATE_BY",fill = FieldFill.INSERT)
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    @TableField(value="CREATE_DATE",fill = FieldFill.INSERT)
    private Date createDate;

    @ApiModelProperty(value = "最后修改人")
    @TableField(value="UPDATE_BY",fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    @ApiModelProperty(value = "最后修改时间")
    @TableField(value="UPDATE_DATE",fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    @Version
    @ApiModelProperty(value = "版本号")
    @TableField("VERSION")
    private Integer version = 0;

    @ApiModelProperty(value = "接口传送标识")
    @TableField("IS_SEND")
    private Integer isSend;

    @ApiModelProperty(value = "是否删除")
    @TableField("IS_DEL")
    private Integer isDel;

    @ApiModelProperty(value = "SAP接口状态 N待发送 W待反馈 S成功 E异常")
    @TableField("SAP_STATE")
    private String sapState;

    @ApiModelProperty(value = "SAP订单号")
    @TableField("SAP_NO")
    private String sapNo;

    @ApiModelProperty(value = "异常信息")
    @TableField("ERROR_INFO")
    private String errorInfo;
}
